home *** CD-ROM | disk | FTP | other *** search
/ Programmer Power Tools / Programmer Power Tools.iso / modem / wxtermsr.arc / WXTERM.PAS < prev    next >
Pascal/Delphi Source File  |  1988-02-12  |  5KB  |  150 lines

  1. {$U-,C-,R-}
  2. PROGRAM wxterm;
  3. {
  4. Scott Murphy
  5. 77 So. Adams St. #301
  6. Denver, CO 80209
  7. Compuserve 70156,263
  8. }
  9. CONST
  10.      VERSION = '3.0';
  11.      BELL_FREQ = 440;                  {frequncy for bell sound}
  12.      BELL_DELAY = 100;                 {duration of bell sound}
  13.      DEFAULT_BAUD = 1200;               {Serial port speed at start-up}
  14.  
  15. TYPE
  16.     bigstring        = STRING[80];    {general purpose}
  17.     cset              = SET OF 0..127;
  18. VAR
  19.    pcjrmode              : BOOLEAN;
  20.    exit,
  21.    xtnd  : BOOLEAN;
  22.    a     : Byte;
  23.    c,i   : INTEGER;
  24.    ch : CHAR;
  25.  
  26. {$C-,R-,U-,K-}
  27. {$I WXTMPORT.INC}
  28. {$I WXTMMISC.INC}
  29.  
  30. PROCEDURE processcom;
  31. VAR
  32.    c    :   INTEGER;
  33. BEGIN
  34.      c := cgetc(0);
  35.      CASE c OF
  36.          -1 : BEGIN
  37.               END; {no action}
  38.           9 : {tab}
  39.               BEGIN
  40.                    FOR c := WhereX TO (WhereX DIV 8 + 1)*8 DO
  41.                        WRITE(' ');
  42.                    c := 9
  43.               END;
  44.           7 : {bell}
  45.                BEGIN
  46.                     Sound(BELL_FREQ);
  47.                     Delay(BELL_DELAY);
  48.                     NoSound
  49.                END;
  50.           12 : {form-feed}
  51.                ClrScr;
  52.          ELSE  WRITE(CHR(c AND $7F));
  53.      END;
  54. END;
  55. {$I WXTMWIND.INC}
  56. {$I WXTMXFER.INC}
  57. {$I WXTMDIAL.INC}
  58.  
  59.  
  60. BEGIN
  61.      ScreenBase := $B000;                       {assume monochrome}
  62.      MemW[ ScreenBase:0000 ]   := 69;
  63.      IF Mem[ ScreenBase:0000 ] <> 69 THEN
  64.         ScreenBase := $B800;
  65.      ClrScr;
  66.      InitWindow(StatWin,1,1,80,2);
  67.      InitWindow(TermWin,1,3,80,25);
  68.      CurrentWin := TermWin;
  69.      UsePermWindow(TermWin);
  70.      status(1,'WXTERM ver: ' + VERSION);
  71.      status(2,'Initializing');
  72.      setup;
  73.      init_port;
  74.      term_ready(TRUE);
  75.      set_up_recv_buffer;
  76.      remove_port;
  77.      init_port;
  78.      term_ready(TRUE);
  79.      set_up_recv_buffer;
  80.      exit := FALSE;
  81.      GotoXY(1,1);
  82.      IF carrier THEN
  83.         status(2,'On-Line/Ready')
  84.      ELSE
  85.         status(2,'Off-Line/Ready');
  86.      status(3,'[Home] for help');
  87.      WRITELN('Press [Home] for help');
  88.      WHILE NOT exit DO
  89.      BEGIN
  90.           IF scan(xtnd,a) THEN
  91.           BEGIN
  92.                IF xtnd THEN
  93.                BEGIN
  94.                   CASE a OF
  95.                        19   : {alt-R}
  96.                               recv_wcp;
  97.                        45   : {alt-X}
  98.                               BEGIN
  99.                                    OpenTemp(20,18,60,22,1);
  100.                                    WRITELN('───WXTERM───');
  101.                                    WRITE('Do you really want to exit (Y/N)? ');
  102.                                    READLN(ch);
  103.                                    IF UpCase(ch) = 'Y' THEN
  104.                                       exit := TRUE;
  105.                                    CloseTemp
  106.                               END;
  107.                        31   : {alt-S}
  108.                               send_wcp;
  109.                        35   : {alt-H}
  110.                               BEGIN
  111.                                    WRITELN('───WXTERM───');
  112.                                    status(2,'Disconnecting');
  113.                                    term_ready(FALSE);
  114.                                    Delay(500);
  115.                                    term_ready(TRUE);
  116.                                    status(2,'Off-Line/Ready')
  117.                               END;
  118.                        46   : {alt-C}
  119.                               ClrScr;
  120.                        48   : {alt-B}
  121.                               break;
  122.                        25   : {alt-P}
  123.                               NewParms;
  124.                        72   : {Cursor up}
  125.                               PushPage;
  126.                        80   : {Cursor Down}
  127.                               PopPage;
  128.                        71   : {Home}
  129.                               BEGIN
  130.                                 OpenTemp(40,3,80,10,2);
  131.                                 WRITELN('Alt-X exit         Alt-H hang up');
  132.                                 WRITELN('Alt-R Xmodem recv  Alt-S Xmodem send');
  133.                                 WRITELN('Alt-B send break   Alt-C clear screen');
  134.                                 WRITELN('        Alt-P comm params  ');
  135.                                 WRITELN('      Press any key to continue');
  136.                                 REPEAT
  137.                                 UNTIL (KeyPressed);
  138.                                 ClrScr;
  139.                                 CloseTemp;
  140.                              END;
  141.                   END; {case}
  142.                END     {if extended key}
  143.                ELSE    {not extended}
  144.                   send(a);
  145.           END; {if KeyPressed}
  146.           processcom;
  147.      END; {while not exit}
  148.      remove_port;
  149. END.
  150.